
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>2、N8N的安装 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>2、N8N的安装 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">模式</div>
          <div class="card-question">n8n 提供了哪两种主要的部署方式，它们分别适合哪类用户？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">模式</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">1. n8n Cloud：无需安装，注册即可使用，适合不想管理服务器的用户。2. 自托管社区版：免费，需自行部署，适合有技术能力、能够完全控制数据和配置的用户。</div>
          </div>
          <div class="card-source">来源: 准备工作</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">自托管 n8n 社区版的推荐硬件配置是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">至少需要 1GB 内存和 2GB 磁盘空间，但为了获得更好的性能，建议使用 2GB 内存。</div>
          </div>
          <div class="card-source">来源: 安装方式二：自托管社区版 - 环境要求</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">在使用 Docker 启动 n8n 时，参数 `-v n8n_data:/home/node/.n8n` 的作用是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">它的作用是创建一个持久化卷，用于存储工作流、凭据和执行历史，确保容器重启或更新后数据不会丢失。</div>
          </div>
          <div class="card-source">来源: 安装方式二：自托管社区版 - 安装步骤</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">n8n 自托管版默认使用什么数据库？如果需要更高性能，可以替换成什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">默认情况下，n8n 使用 SQLite 存储数据。如果需要更高的性能，可以配置并替换为 PostgreSQL。</div>
          </div>
          <div class="card-source">来源: 安装方式二：自托管社区版 - （可选）使用 PostgreSQL 替代 SQLite</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">为什么不推荐在生产环境中使用 npm 方式安装 n8n？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">因为 npm 安装方式缺乏 Docker 的容器化隔离和持久化支持，更适合本地开发和测试，不适合生产环境。</div>
          </div>
          <div class="card-source">来源: 安装方式三：使用 npm（替代方案）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">除了 Docker，n8n 还可以通过哪种替代方案安装？该方案对 Node.js 版本有什么具体要求？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">可以使用 npm 进行安装。该方案要求 Node.js 版本在 20.19 至 24.x 之间。</div>
          </div>
          <div class="card-source">来源: 安装方式三：使用 npm（替代方案） - 环境要求</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">为了获得更稳定的生产环境，文档推荐使用什么工具来管理 n8n 的 Docker 部署？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">推荐使用 Docker Compose。通过创建一个 `docker-compose.yml` 文件来管理服务，可以确保 n8n 稳定运行并在容器停止后保留数据。</div>
          </div>
          <div class="card-source">来源: 安装方式二：自托管社区版 - （可选）使用 Docker Compose</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">激活 n8n 社区版免费许可证后，功能上存在什么已知的限制？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">激活后的社区版许可证虽然永不过期，但功能会受限，例如仅保留 24 小时的工作流历史。</div>
          </div>
          <div class="card-source">来源: 安装方式二：自托管社区版 - 激活社区版许可证</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">安全</div>
          <div class="card-question">在自托管 n8n 时，为了确保数据安全，文档提到了哪三项核心建议？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">安全</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档提到的三项建议是：1. 配置 SSL 加密通信；2. 使用强密码保护管理员账户；3. 定期备份 `n8n_data` 卷或数据库。</div>
          </div>
          <div class="card-source">来源: 常见问题与注意事项 - 如何确保数据安全？</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
